<?php
Class OpcionesRol extends Applicationbase{
	private $tabla;
	private	$tablaOR="wc_opcionesrol OpR";
	private $tablaO="wc_opciones O";
	private $tablaR="wc_rol R";
	
	function __construct(){
		$this->tabla="wc_opcionesrol";
	}

	function OpcionesxId($idRol){
		
		$data=$this->leeRegistro($this->tablaOR.",".$this->tablaO,
						"O.Id,OpR.IdOpciones,O.Nivel,O.Orden,O.Nombre,O.url,O.Icono,OpR.Estado,O.inicio,O.IdModulo","OpR.Estado=1 and OpR.IdRol=".$idRol." and OpR.IdOpciones=O.Id","IdModulo,Nivel,Orden","");
		
		$tdata=count($data);
		if($tdata>0){
				for($i=0;$i<$tdata;$i++){
			
	//			$datos[$data[$i]['idmodulo']][]=array($data[$i]['nivel'],$data[$i]['orden'],$data[$i]['nombre'],$data[$i]['url'],$data[$i]['icono'],$data[$i]['estado'],$data[$i]['inicio'],$data[$i]['idmodulo']);
				$datos[$data[$i]['idmodulo']][]=$data[$i];
			}
			$datos2=array_keys($datos);
	
			for($i=0;$i<count($datos2);$i++){
				$data3[]=$datos[$datos2[$i]]	;
			}
			return $data3;
		}else {
			return false;
		}
	
	}
	
	function OpcionesListaxId($idRol){
		
		$data=$this->leeRegistro($this->tablaOR.",".$this->tablaO,
						"O.Id,OpR.IdOpciones,O.Nivel,O.Orden,O.Nombre,O.url,O.Icono,OpR.Estado,O.inicio,O.IdModulo","OpR.Estado=1 and OpR.IdRol=".$idRol." and OpR.IdOpciones=O.Id","IdModulo,Nivel,Orden","");
		return $data;
	}
	
	
	function OpcionesxRoles($DataRol){
			$totalRoles=count($DataRol);
			$in="(";
			for($i=0;$i<$totalRoles;$i++){
				$in.=$DataRol[$i][1];
				if(($i+1)!=$totalRoles){
					$in.=",";
				}
			}
			$in.=")";
		$data=$this->leeRegistro($this->tablaOR.",".$this->tablaO.",".$this->tablaR,
						"Distinct O.Id,O.Nivel,O.Orden,O.Nombre,O.url,O.Icono,OpR.Estado,O.inicio,O.IdModulo","OpR.IdRol in ".$in." and OpR.IdOpciones=O.Id and OpR.IdRol=R.Id and O.Estado=1 ","O.IdModulo,O.Nivel","");
		$tdata=count($data);
		for($i=0;$i<$tdata;$i++){
			$datos[$data[$i]['idmodulo']][]=$data[$i];
		}
		$datos2=array_keys($datos);
		for($i=0;$i<count($datos2);$i++){
			$data3[]=$datos[$datos2[$i]];
		}
		return $data3;
	}
	
	
	
	
	function GrabaOpcionesRol($data){
		//Verificando Modulo
		$modulo=$this->leeRegistro($this->tablaO,"Id,IdModulo","id=".$data['IdOpciones']."","");
		$idModulo=$modulo[0][1];
		
		$OpcionModulo=$this->leeRegistro($this->tablaO,"Id,IdModulo,Nivel","idModulo=".$idModulo." and Nivel=1","");
		$idOpcionModulo=$OpcionModulo[0][0];
		
		$Verificacion=$this->leeRegistro($this->tablaOR,"","IdRol=".$data['IdRol']." and IdOpciones=".$idOpcionModulo."","","");
		$cVer=count($Verificacion);
		if($cVer==0){
			$dataModulo['IdRol']=$data['IdRol'];
			$dataModulo['IdOpciones']=$idOpcionModulo;
			$dataModulo['Estado']=1;
			$grabaModulo=$this->grabaRegistro($this->tabla,$dataModulo);
		}
		$exito=$this->grabaRegistro($this->tabla,$data);
		return $exito;
	}
	
	function EliminaOpcionesRol($data){
		$filtro="idRol=".$data['IdRol']." and idOpciones=".$data['IdOpciones']." and Estado=".$data['Estado'];
		$exito=$this->eliminaRegistro($this->tabla,$filtro);
		return $exito;
	}
}
?>


